package pkg.finalproyectEJB;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * Clase Producto que es utilizada para mappear los datos los productos de la
 * base de datos Es utilizada en la Ejb y la clase ManagedBean del proyecto.
 * 
 * @author lorenzoveas.trainee@tinet.cl
 * @author Lorenzo Andres Veas Veas.
 */
@Entity
@Table(name = "producto")
public class Producto implements Serializable {

    /**
     * doc information expected for serialVersionUID attribute.
     */
    private static final long serialVersionUID = 1L;

    /**
     * Atributo COD_PRODUCTO es el identificador del producto.
     */
    @Id
    private String COD_PRODUCTO;
    /**
     * Atributo NOMBRE nombre del producto .
     */
    @Column(name = "NOMBRE")
    private String nombre;
    /**
     * Atributo DESCRIPCION es la caracteristica principal que tiene el
     * producto.
     */
    @Column(name = "DESCRIPCION")
    private String descripcion;
    /**
     * Atributo PRECIO valor unitario del producto.
     */
    @Column(name = "PRECIO")
    private int precio;
    /**
     * Atributo CANTIDAD es el stock del producto.
     */
    @Column(name = "CANTIDAD")
    private int cantidad;

    /**
     * Constructor por defecto del a clase producto.
     */
    public Producto() {

    }

    /**
     *  Constructor que asigna los atributos de la clase Producto.
     * 
     * @param cOD_PRODUCTO
     *            asigna el codigo principal del producto a objeto creado
     * @param nombre
     *            asigna el nombre del producto a objeto creado
     * @param descripcion
     *            asigna la descripcio  del producto a objeto creado
     * @param precio
     *            asigna el precio unitario del producto a objeto creado
     * @param cantidad
     *            asigna la cantidad del producto a objeto creado
     */
    public Producto(String cOD_PRODUCTO, String nombre, String descripcion,
            int precio, int cantidad) {
        super();
        COD_PRODUCTO = cOD_PRODUCTO;
        this.nombre = nombre;
        this.descripcion = descripcion;
        this.precio = precio;
        this.cantidad = cantidad;
    }

    /**
     * Permite Capturar el valor del Atributo cOD_PRODUCTO.
     * 
     * @return El valor cOD_PRODUCTO.
     */
    public String getCOD_PRODUCTO() {
        return COD_PRODUCTO;
    }

    /**
     * Permite asignar el valor del atriburo cOD_PRODUCTO attribute value.
     * 
     * @param cOD_PRODUCTO
     *            Nuevo valor para el atributo cOD_PRODUCTO.
     */
    public void setCOD_PRODUCTO(String cOD_PRODUCTO) {
        COD_PRODUCTO = cOD_PRODUCTO;
    }

    /**
     * Permite Capturar el valor del Atributo nombre.
     * 
     * @return El valor nombre.
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * Permite asignar el valor del atriburo nombre attribute value.
     * 
     * @param nombre
     *            Nuevo valor para el atributo nombre.
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * Permite Capturar el valor del Atributo descripcion.
     * 
     * @return El valor descripcion.
     */
    public String getDescripcion() {
        return descripcion;
    }

    /**
     * Permite asignar el valor del atriburo descripcion attribute value.
     * 
     * @param descripcion
     *            Nuevo valor para el atributo descripcion.
     */
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    /**
     * Permite Capturar el valor del Atributo precio.
     * 
     * @return El valor precio.
     */
    public int getPrecio() {
        return precio;
    }

    /**
     * Permite asignar el valor del atriburo precio attribute value.
     * 
     * @param precio
     *            Nuevo valor para el atributo precio.
     */
    public void setPrecio(int precio) {
        this.precio = precio;
    }

    /**
     * Permite Capturar el valor del Atributo cantidad.
     * 
     * @return El valor cantidad.
     */
    public int getCantidad() {
        return cantidad;
    }

    /**
     * Permite asignar el valor del atriburo cantidad attribute value.
     * 
     * @param cantidad
     *            Nuevo valor para el atributo cantidad.
     */
    public void setCantidad(int cantidad) {
        this.cantidad = cantidad;
    }

}
